package com.smedi.ismedi.authoritymanagement.core.application.query;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smedi.ismedi.authoritymanagement.core.application.command.ElementListQuery;
import com.smedi.ismedi.authoritymanagement.core.application.command.ElementOneQuery;
import com.smedi.ismedi.authoritymanagement.core.application.command.ElementPageQuery;
import com.smedi.ismedi.authoritymanagement.core.application.command.ElementTreeCommand;
import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.Element;
import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.ElementNode;

import java.util.List;

/**
 * 特种设备查询服务
 *
 * @author xienannan
 * @date 2021/08/28
 */
public interface ElementQueryService {

    /**
     * 查询 元素 单一
     *
     * @param ElementOneQuery 查询 单一 命令
     * @return Element
     */
    Element getElementOne(ElementOneQuery ElementOneQuery);

    /**
     * 查询 元素 列表
     *
     * @param ElementListQuery 查询 列表 命令
     * @return Element
     */
    List<Element> getElementList(ElementListQuery ElementListQuery);

    /**
     * 查询 元素 分页
     *
     * @param ElementPageQuery 查询 分页 命令
     * @return Element
     */
    Page<Element> getElementPage(ElementPageQuery ElementPageQuery);

    /**
     * 查询 元素 树
     *
     * @return Element
     */
    List<ElementNode> getTree(ElementTreeCommand elementTreeCommand);
}

